package br.com.monitorimoveis.comum.entidade;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="ESTADO")
public class Estado {
	
	@Id
	@Column(name="sig_estado", nullable=false)
	private String sigla;
	
	@Column(name="des_estado", nullable=false)
	private String descricao;
	
	@OneToMany(fetch=FetchType.LAZY, mappedBy="estado")
	private List<Cidade> cidades;
	
	public Estado() {
	}
	
	public Estado(String sigla, String descricao){
		this.sigla = sigla;
		this.descricao = descricao;		
	}

	public Estado(String sigla, List<Cidade> cidades) {
		this.sigla = sigla;
		this.cidades = cidades;
	}

	public String getSigla() {
		return sigla;
	}
	
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	
	public List<Cidade> getCidades() {
		return cidades;
	}
	public void setCidades(List<Cidade> cidades) {
		this.cidades = cidades;
	}

	@Override
	public boolean equals(Object obj) {
		if (!(obj instanceof Estado))
			return false;
		Estado cmp = (Estado) obj;
		return this.getSigla().equals(cmp.getSigla());				
	}	
	

	public static Estado montarDF() {
		return new Estado("DF", Cidade.obterCidadesDF());
	}
	
}
